package com.aaa.tars.service;

import com.aaa.tars.entity.Ticket;
import com.aaa.tars.util.Page;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @FileName: TicketService
 * @Description: 门票服务层接口
 * @Author: 李宗盛
 * @CreateTime: 2025/9/12 11:14
 * @Version: 17
 */
public interface TicketService {
    // 查询：查询某景区下的所有门票
    List<Ticket> queryByScenicId(Integer scenicId);

    // 新增：查询门票及下属所有订单（关联查询）
    Ticket queryTicketWithOrders(Integer ticketId);
    
    // 新增：查询门票及关联的景区信息（不关联订单）
    Ticket queryTicketWithScenicOnly(Integer ticketId);

    /**
     * 通过ID进行查询
     * @param ticketId
     * @return
     */
    Ticket queryById(Integer ticketId);


    /**
     * 查询所有门票信息
     * @return 门票列表
     */
    PageInfo queryByPage(Page<Ticket> Page);

    /**
     * 新增门票信息
     * @param ticket 门票实体
     * @return 影响行数
     */
    int add(Ticket ticket);

    /**
     * 更新门票信息
     * @param ticket 门票实体
     * @return 影响行数
     */
    int update(Ticket ticket);

    /**
     * 根据ID删除门票信息
     * @param ticketId 门票ID
     * @return 影响行数
     */
    int deleteById(Integer ticketId);
}